package test.serverframe.armc.server.manager.service;

import test.serverframe.armc.server.manager.domain.TaskInvoke;
import test.serverframe.armc.server.manager.domain.params.AddTaskEnterInvokeParams;

import java.util.List;

/**
 * @Description 任务调度接口
 * @Author LSY
 * @Date 2018/10/10 14:47
 * @IntefaceName test.serverframe.armc.server.manager.service.TaskInvokeService
 */
public interface TaskInvokeService extends BaseService<TaskInvoke,String> {

    /**
     * @Descripttion 新增任务调度
     * @Author LSY
     * @Date 2018/10/10 17:42
     * @Param [taskInvoke 任务调度实体]
     * @Return 新增成功数量
     **/
    Integer addTaskInvoke(TaskInvoke taskInvoke);

    /**
     * @Descripttion 添加任务关联任务调度
     * @Author LSY
     * @Date 2018/10/11 13:38
     * @Param [taskIds 任务id集合 , taskInvokeId 任务调度id]
     * @Return 添加成功数量
     **/
    Integer addTaskEnterInvoke(List<AddTaskEnterInvokeParams> taskIds);

    /**
     * @Descripttion 修改任务调度
     * @Author LSY
     * @Date 2018/10/11 11:29
     * @Param [taskInvoke 任务调度实体]
     * @Return 修改成功数量
     **/
    Integer updateTaskInvoke(TaskInvoke taskInvoke) throws Exception;

    /**
     * @Descripttion 删除任务调度
     * @Author LSY
     * @Date 2018/10/11 10:09
     * @Param [taskInvokeIds 任务调度集合]
     * @Return 删除数量
     **/
    int deleteInvoke(List<String> taskInvokeIds) throws Exception;

    /**
     *
     * @param taskInvokeId
     * @return
     */
    TaskInvoke findById(String taskInvokeId);

    /**
     * 根据传递的参数进行选择性的获取任务调度
     * @param taskInvoke
     * @return
     */
    TaskInvoke selectSelective(TaskInvoke taskInvoke);
    
}
